const express = require('express'); // express 框架
const path = require('path');
const fs = require('fs');
const app = express(); // 创建服务
const mongoose = require('mongoose')
const routers = require('./router')
const bodyParser = require('body-parser');

// 1.连接数据库 27017  为默认数据库端口 dbName 为创建数据库的名称
mongoose.connect(`mongodb://127.0.0.1:27017/dbName`, { useNewUrlParser: true, useUnifiedTopology: true }, (error) => {
    if (error) {
        console.log('数据库连接失败');
    } else {
        // 数据库连接成功 启动服务
        startServer()
        console.log('数据库连接成功');
    }
})
// 创建一个 node服务
const startServer = () => {
  // 链接9090端口
    app.listen(9990, (error) => {
        {
            if (error) {
                console.log("服务启动失败", chalk.red(error))
            } else {
                console.log('服务启动成功:')
                console.log(`http://localhost:9090`)
            }
        }
    })
}
// 静态资源访问
app.use(express.static(path.join(__dirname, './build')))
app.use(express.static(path.join(__dirname, './public')))
app.get('/api/aaa', (req, res) => {
    const tid = req.query.tid
    console.log(123, tid)
    let customersIp = req.headers['x-forwarded-for'] || ''
    customersIp = customersIp.split(',')[0]
    req.customersIp = customersIp
    console.log(customersIp, 'customersIp')
    res.send('ok' + customersIp)
    // var path='./public/index.html';
    // var fileStream = fs.createReadStream(path);
    // res.setHeader('Content-type', 'application/octet-stream');
    // // res.setHeader('Content-Disposition', 'attachment;filename=1.pdf'); 
    // res.setHeader('Content-Disposition', `'attachment;filename=index.html`); 
    // fileStream.on('data', function (data) {
    //     res.write(data, 'binary');
    // });
    // fileStream.on('end', function () {
    //     res.end();
    //     console.log('The file has been downloaded successfully!');
    // });
    // fs.readFile('./public/index.html', 'utf8', (err, count) => {
    //     if (err) {
    //       res.send({
    //         code: 500,
    //         data: {
    //           msg: '文件下载失败'
    //         }
    //       })
    //     } else {
    //       console.log('send')
    //     //   res.setHeader('Content-Type', 'text/html; charset=utf-8')
    //       res.send(count)
    //     }
    //   })

}); // 处理 json 格式


/* 解决服务的跨域问题 */
app.all('*', function (req, res, next) {
    console.log(123)
    res.header('Access-Control-Allow-Origin', '*');
    //Access-Control-Allow-Headers ,可根据浏览器的F12查看,把对应的粘贴在这里就行
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    res.header('Access-Control-Allow-Methods', '*');
    // res.header('Content-Type', 'application/json'); // application/json
    // res.header('Content-Type', 'application/x-www-form-urlencoded'); // application/json
    next();
    });
app.post('/api/post', (req, res) => {
    console.log(req.query, req.body)
    res.send({
        code: 200,
        data: 'ok'
    })

});
app.get('/api/test', (req, res) => {
    const tid = req.query.tid
    console.log(123, tid)
    // res.send({
    //     msg: 'ok2'
    // })
    res.send('ko')
}); // 处理 json 格式
app.use(bodyParser.json()); // 处理 json 格式
app.use(bodyParser.urlencoded({ extended: false })); // 处理 urlencoded 格式

/**
 * @description 请求路由
 * 所有请求路由都会往这里面走
 */
app.use(routers)

